#include <bits/stdc++.h>
using namespace std;

struct Data
{
	string s;
	int next;
};

auto cmp = [](Data a, Data b) -> bool
{
	return a.s > b.s;
};

int main()
{
	ios::sync_with_stdio(false); // 关闭IO同步
	cin.tie(nullptr), cout.tie(nullptr);

	string str;
	int k;
	cin >> str >> k;

	priority_queue<Data, vector<Data>, decltype(cmp)> pq(cmp);

	for (int i = 0; i < str.size(); i++)
	{
		pq.push({{str[i]}, i + 1});
	}

	unordered_set<string> st;
	string res = pq.top().s;
	while (st.size() < k)
	{
		auto tmp = pq.top();
		pq.pop();
		st.insert(tmp.s);
		res = tmp.s;
		if (tmp.next < str.size())
		{
			pq.push({{tmp.s + str[tmp.next]}, tmp.next + 1});
		}
	}
	cout << res << endl;

	return 0;
}
// 64 位输出请用 printf("%lld")